package devcamp.team.util;

import android.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.provider.Settings;

/**
 * ダイアログとして表示する内容を集めたクラス.
 * @author moonstruckdrops
 *
 */
public class DialogUtils {

    /**
     * OKボタンを押すと閉じる警告ダイアログを取得する.
     * @param activity アクティビティ
     * @param title ダイアログに表示するタイトル
     * @param message ダイアログに表示するメッセージ
     * @return 表示したいダイアログ
     */
    public static AlertDialog AlertDialog(Activity activity, String title, String message) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
        dialog.setTitle(title);
        dialog.setMessage(message);
        dialog.setIcon(R.drawable.ic_dialog_alert);
        dialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        return dialog.create();
    }

    /**
     * OKボタンを押すと閉じるメッセージダイアログを取得する.
     * @param activity アクティビティ
     * @param message ダイアログに表示するメッセージ
     * @return 表示したいダイアログ
     */
    public static AlertDialog messageDialog(Activity activity, String message) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
        dialog.setMessage(message);
        dialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        return dialog.create();
    }

    /**
     * 円形のインジケータを表示をするプログレスダイアログを取得する.
     * @param activity アクティビティ
     * @param title ダイアログに表示するタイトル
     * @param message ダイアログに表示するメッセージ
     * @return 表示したいダイアログ
     */
    public static ProgressDialog SpinnerProgressDialog(Activity activity, String title, String message) {
        ProgressDialog progressDialog = new ProgressDialog(activity);
        progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progressDialog.setTitle(title);
        progressDialog.setMessage(message);
        progressDialog.setCancelable(true);
        return progressDialog;
    }
    
    /**
     * OKボタンを押すと別の画面に遷移する。NGボタンを押すと終了する。警告ダイアログを取得する.
     * @param activity アクティビティ
     * @param title ダイアログに表示するタイトル
     * @param message ダイアログに表示するメッセージ
     * @param action The Intent action
     * @return 表示したいダイアログ
     */
    public static AlertDialog AlertDialogOk2action(final Activity activity, String title, String message, final String action) {
        AlertDialog.Builder dialog = new AlertDialog.Builder(activity);
        dialog.setTitle(title);
        dialog.setMessage(message);
        dialog.setIcon(R.drawable.ic_dialog_alert);
        dialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
                Intent intent = new Intent(action);
                activity.startActivity(intent);
            }
        });
        dialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
            	dialog.cancel();
            	// なにもせず終了
            	activity.finish();
            }
        });
        return dialog.create();
    }
}
